package assem;

import temp.Temp;
import temp.TempList;
import temp.TempMap;
import util.List;

public class MOVE extends Instr {

	public MOVE(String a, Temp d, Temp s) {
		assem = a;
		use = new List<Temp>(s, null);
		def = new List<Temp>(d, null);
		jumps = null;
	}

	public Temp dst() throws Exception {
		return def.get(0);
	}

	public Temp src() throws Exception {
		return use.get(0);
	}

	@Override
	public String format(TempMap m) throws Exception {
		if (m.tempMap(src()) == m.tempMap(dst())) {
			return "#" + super.format(m);
		}

		return super.format(m);
	}

	// Essa parte deve ser Análise de Longevidade =X

	@Override
	public TempList use() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public TempList def() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Targets jumps() {
		// TODO Auto-generated method stub
		return null;
	}
}
